<p>The use of increment and decrement operators in combination with other arithmetic operators is not recommended, because:</p>
<p>It can significantly impair the readability of the code.</p>
<p>It introduces additional side effects into a statement, with the potential for undefined behavior.</p>
<p>It is safer to use these operators in isolation from any other arithmetic operators.</p>
<h2>Noncompliant Code Example</h2>

<pre>
u8a = ++u8b + u8c--; 
foo = bar++ / 4;
</pre>
<h2>Compliant Solution</h2>

<p>The following sequence is clearer and therefore safer:</p>
<pre>
++u8b;    
u8a = u8b + u8c; 
u8c--; 
foo = bar / 4;
bar++;
</pre>
<h2>See</h2>

<ul>
<li> MISRA C:2004, 12.1</li>
<li> MISRA C:2004, 12.13</li>
<li> MISRA C:2004, 13.3</li>
<li> MISRA C++:2008, 5-2-10</li>
<li> MISRA C:2012, 12.1</li>
<li> MISRA C:2012, 13.3</li>
<li> <a href="https://www.securecoding.cert.org/confluence/x/ZwE">CERT, EXP30-C</a> - 	Do not depend on the order of evaluation for side effects</li>
<li> <a href="https://www.securecoding.cert.org/confluence/x/fYAyAQ">CERT, EXP30-CPP</a> - Do not depend on order of evaluation between sequence points</li>
<li> <a href="https://www.securecoding.cert.org/confluence/x/yQC7AQ">CERT, EXP05-J</a> - Do not follow a write by a subsequent write or read of the same object within an expression</li>
</ul>

